﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SistemaGPS.NET.Dominio;
using System.Runtime.Serialization;
using System.Data.SqlClient;

namespace SistemaGPS.NET.Persistencia
{
    public class VehiculoADODAO
    {
        public VehiculoADO Crear(VehiculoADO vehiculoACrear)
        {
	        VehiculoADO vehiculoCreado = null;
	        string sql = "INSERT INTO t_vehiculo VALUES (@codigo, @placa, @cliente)";
	        using (SqlConnection con = new SqlConnection(ConexionUtilADO.Cadena))
        	{
		        con.Open();
		        using (SqlCommand com = new SqlCommand(sql, con))
		        {
			        com.Parameters.Add(new SqlParameter("@codigo", vehiculoACrear.Codigo));
			        com.Parameters.Add(new SqlParameter("@placa", vehiculoACrear.Placa));
                    com.Parameters.Add(new SqlParameter("@cliente", vehiculoACrear.Cliente));
                    com.ExecuteNonQuery();
		        }
	        }
	        vehiculoCreado = Obtener(vehiculoACrear.Codigo);
	        return vehiculoCreado;
        }

        public VehiculoADO Obtener(int codigo)
       {
           VehiculoADO vehiculoEncontrado = null;
           string sql = "SELECT * FROM t_vehiculo WHERE codigo=@codigo";
           using (SqlConnection con = new SqlConnection(ConexionUtilADO.Cadena))
           {
               con.Open();
               using (SqlCommand com = new SqlCommand(sql, con))
               {
                   com.Parameters.Add(new SqlParameter("@codigo", codigo));
                   using (SqlDataReader resultado = com.ExecuteReader())
                   {
                       if (resultado.Read())
                       {
                           vehiculoEncontrado = new VehiculoADO()
                           {
                               Codigo = (int)resultado["codigo"],
                               Placa = (string)resultado["placa"],
                               Cliente = (Cliente)resultado["cliente"]
                           };
                       }
                   }          
               }
           }
           return vehiculoEncontrado;
       }

        public VehiculoADO Modificar(VehiculoADO vehiculoAModificar)
        {
            VehiculoADO vehiculoModificado = null;
            string sql = "UPDATE INTO t_vehiculo VALUES (@placa, @cliente) WHERE codigo=@codigo";
            using (SqlConnection con = new SqlConnection(ConexionUtilADO.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@codigo", vehiculoAModificar.Codigo));
                    com.Parameters.Add(new SqlParameter("@placa", vehiculoAModificar.Placa));
                    com.Parameters.Add(new SqlParameter("@cliente", vehiculoAModificar.Cliente));
                    com.ExecuteNonQuery();
                }
            }
            vehiculoModificado = Obtener(vehiculoAModificar.Codigo);
            return vehiculoModificado;
        }
        
        public void Eliminar(VehiculoADO vehiculoAEliminar)
        {
            string sql = "DELETE INTO t_vehiculo * WHERE codigo=@codigo";
            using (SqlConnection con = new SqlConnection(ConexionUtilADO.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@codigo", vehiculoAEliminar.Codigo));
                    com.ExecuteNonQuery();
                }
            }
        }

        //public List<VehiculoADO> ListarTodos()
        //{
	        //}
    }
}